The usage of network file systems ("NFS") permit remote files to be treated as a "virtual file" which resides locally on a desktop. Moreover, NFSs permit sharing and manipulation of centrally located information without the burden of added complexity. In another context, NFSs permit remote hardware to appear as virtual devices which reside locally in a desktop computer or workstation. As one example, automated controllers whose physical components may reside near the devices they control can be made to appear as a "virtual device" which resides in the desktop computer or workstation.
In general the virtual device approach provides software objects which logically behave as if the hardware device itself is locally resident on the desktop PC or workstation. The advantage of this approach is to effectively hide the complexity of communications, data caching and refreshing, persistent storage, and on-line/off-line functionality from the user interface applications. In short, the goal of the virtual device approach is to abstract out as much detail as possible for potential clients.
The ASA virtual device architecture developed by Allen-Bradley Company, Inc., the assignee of the present application comprises a set of objects which provide functionality for supporting all of the complex behavior mentioned above. This set of objects can be used as the basis of creating specific virtual objects for representing any of a family of devices. For example, a developer can use this platform to create a virtual automation controller module which comprises many classes of objects such as a Task, Program, Data, Memory and I/O Map objects. Each of the classes, in turn, comprise a plurality of instances or specific individual objects wherein the instances of each class have similar attributes.
At times it is desirable to inspect or set all or some of the attributes associated with any of the instances which make up a particular object within a module. In the past this has been accomplished via a set of functional interfaces that handled each attribute on an individual basis. While this method works well in a system with few attributes, it becomes unmanageable when many attributes are involved. This is especially true when an attribute's format changes as this requires changes to every reference to that attribute in every software object.
Accordingly, there is a present need for a method for handling instance attributes in a system comprised of many classes of instances each having a plurality of attributes wherein attributes are not required to be handled on an individual basis. More generally, there is a present need for a method of communicating instance attributes between virtual and physical devices in a more efficient manner.